using System;
using System.Collections;
using System.Collections.Generic;

using ImPM.Data.Base;

namespace ImPM.Data.BusinessObjects
{
    public partial class Project : BusinessBase<int>
    {
        #region Declarations

		
		private string _projectName = String.Empty;
		private System.DateTime _startDate = new DateTime();
		private System.DateTime _finishDate = new DateTime();
		private string _projectGUID = String.Empty;
		private int _projectOwner = default(Int32);
		
		
		
        #endregion

        #region Constructors

        public Project() { }

        #endregion

        #region Methods

        public override int GetHashCode()
        {
            System.Text.StringBuilder sb = new System.Text.StringBuilder();
            
            sb.Append(this.GetType().FullName);
			sb.Append(_projectName);
			sb.Append(_startDate);
			sb.Append(_finishDate);
			sb.Append(_projectGUID);
			sb.Append(_projectOwner);

            return sb.ToString().GetHashCode();
        }

        #endregion

        #region Properties

		public virtual string ProjectName
        {
            get { return _projectName; }
			set
			{
				OnProjectNameChanging();
				_projectName = value;
				OnProjectNameChanged();
			}
        }
		partial void OnProjectNameChanging();
		partial void OnProjectNameChanged();
		
		public virtual System.DateTime StartDate
        {
            get { return _startDate; }
			set
			{
				OnStartDateChanging();
				_startDate = value;
				OnStartDateChanged();
			}
        }
		partial void OnStartDateChanging();
		partial void OnStartDateChanged();
		
		public virtual System.DateTime FinishDate
        {
            get { return _finishDate; }
			set
			{
				OnFinishDateChanging();
				_finishDate = value;
				OnFinishDateChanged();
			}
        }
		partial void OnFinishDateChanging();
		partial void OnFinishDateChanged();
		
		public virtual string ProjectGUID
        {
            get { return _projectGUID; }
			set
			{
				OnProjectGUIDChanging();
				_projectGUID = value;
				OnProjectGUIDChanged();
			}
        }
		partial void OnProjectGUIDChanging();
		partial void OnProjectGUIDChanged();
		
		public virtual int ProjectOwner
        {
            get { return _projectOwner; }
			set
			{
				OnProjectOwnerChanging();
				_projectOwner = value;
				OnProjectOwnerChanged();
			}
        }
		partial void OnProjectOwnerChanging();
		partial void OnProjectOwnerChanged();
		
        #endregion
    }
}
